import plugin from '../../lib/plugins/plugin.js'
import axios from 'axios'
import _ from 'lodash'


let apiurl = "ttps://aip.baidubce.com/rest/2.0/solution/v1/img_censor/v2/user_defined"
let usertokenurl  = "ttps://aip.baidubce.com/oauth/2.0/toke"

// 初始化数据库
let wjcndb = {
  "baiduck": null,
  "baidusk": null,
  "bendi": 0, // 是否使用本地词库
  "forbwords": [],  // 本地词库
  'open': false // 是否开启监控
};

async function initializeDatabase() {
  try {
    let data = await redis.get('WJCJIANTING_DB');
    if (!data) {
      await redis.set('WJCJIANTING_DB', JSON.stringify(wjcndb));
      logger.info('初始化数据库成功！');
    }
  } catch (error) {
    logger.error('初始化数据库失败:', error);
  }
}

// 初始化数据库
initializeDatabase();


export class forbwords extends plugin {
    constructor () {
      super({
        name: 'forbwords',
        dsc: "更好用的违禁词监听",
        event: 'message',
        priority: 60000,
        rule: [
          {
            reg: '^#(打开|关闭)违禁词监控',
            fnc: "Open"
          },
          {
            reg: "设置百度(sk|ck)(.*)",
            fnc: "SetBaidu"
          },
          {
            reg: ".*(.*)",
            fnc: "Monitor",
            log: true //用于开发，使用环境下建议改成false
          }
        ]
      })
    }

  async SetBaidu(e) {
    const regex = /设置百度(sk|ck)(.*)/;
    const match = e.msg.match(regex);
    if (!match) return; // 如果匹配失败，直接返回

    let type = match[1];
    let value = match[2].trim(); // 去除可能的前后空格
    let key = await redis.get('WJCJIANTING_DB');
    let db = JSON.parse(key);

    try {
      if (type === 'sk' && db.baidusk === null) {
        db.baidusk = value;
        await redis.set('WJCJIANTING_DB', JSON.stringify(db));
        return e.reply(`设置百度SK成功！`);
      }
      if (type === 'ck' && db.baiduck === null) {
        db.baiduck = value;
        await redis.set('WJCJIANTING_DB', JSON.stringify(db));
        return e.reply(`设置百度CK成功！`);
      }
    } catch (error) {
      logger.error(`设置百度${type.toUpperCase()}失败:`, error);
      return e.reply(`设置百度${type.toUpperCase()}失败，请重试。`);
    }
  }


  async Open(e) {
    //获取数据库
    let wjcndb = await redis.get('WJCJIANTING_DB')

  }
}


//获取百度接口token
async function token() {
    let headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    
    let data = await redis.get('BAIDU_API_KEY')
    let obj = JSON.parse(data)
    if (!obj.ck) {
      return { code: 400, message: '请先配置BAIDU_API_ck' }
    } else if (!obj.sk) {
      return { code: 400, message: '请先配置BAIDU_API_sk' }
    }
}

